/*
 * 包含模块
 */

#ifndef HEAD_H_
#define HEAD_H_

#include "msp430.h"
#include "driverlib\MSP430F5xx_6xx\driverlib.h"
#include "head\MCU.h"
#include "head\ATGM336.h"
#include "head\WHGM5.h"
#include "head\FPGA.h"
#include "head\ICM20602_I2c.h"
#include "head\BAT2U.h"
#include "head\TPL0401A.h"
#include "head\leaveWater.h"
#include "head\vbat.h"
#include "head\battery.h"
#include "head\Timer.h"
#include "head\PowerDownSave.h"
#include "head\DebugTool.h"

/*
 * @brief  发送数据到串口，顺便计算检验和
 * @param  data：要发送的数据
 *         dataLen：数据长度
 *         dataDir：数据方向，0高位在高端，高位在低端
 *         crc：校验和计算
 * @retval 无*/
void main_sendStrLen(uint8_t *data,uint16_t dataLen,uint8_t dataDir,uint8_t *crc);

/*
 * @brief  发送55cc协议的命令到串口
 * @param  TxCommand：要发送的命令
 *         TxParameterLen：要发送参数的长度
 *         TxParameter：要发送的参数
 *         TxParameterDir：接收到参数的方向，0：LMB，高位放高端；1：MSB，高位放低端
 *         uartBaseAddress：解析完后要发送数据的方向,0为同时向USB与4G发送
 * @retval 无*/
void main_sendCmd(uint8_t *TxCommand,uint16_t TxParameterLen,uint8_t *TxParameter,uint8_t TxParameterDir,uint16_t uartBaseAddress);

/*
 * @brief  让前面初始化的掉电保存结构体数据生效，要放在所有模块初始化的最后
 * @param  无
 * @retval 无*/
void main_enablePDS();

/*
 * @brief  解析接收的数据
 * @param  RxCommand：接收到的命令
 *         RxParameter：接收到的参数
 *         RxParameterCount：接收到参数的长度
 *         RxParameterDir：接收到参数的方向，0：LMB，高位放高端；1：MSB，高位放低端
 *         uartBaseAddress：解析完后如要发送数据的方向
 * @retval 无*/
void main_PareRx(uint8_t RxCommand,uint8_t *RxParameter,uint8_t RxParameterCount,uint16_t uartBaseAddress);


/*
 * @brief  初始化掉电保存结构体数据
 * @param  strPowDownSave：塞入一个结构体
 * @retval 无*/
void main_alarmClock();

#endif /* HEAD_H_ */
